/****************************************************************************
**
** Trolltech hereby grants a license to use the Qt/Eclipse Integration
** plug-in (the software contained herein), in binary form, solely for the
** purpose of creating code to be used with Trolltech's Qt software.
**
** Qt Designer is licensed under the terms of the GNU General Public
** License versions 2.0 and 3.0 ("GPL License"). Trolltech offers users the
** right to use certain no GPL licensed software under the terms of its GPL
** Exception version 1.2 (http://trolltech.com/products/qt/gplexception).
**
** THIS SOFTWARE IS PROVIDED BY TROLLTECH AND ITS CONTRIBUTORS (IF ANY) "AS
** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
** TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
** OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
**
** Since we now have the GPL exception I think that the "special exception
** is no longer needed. The license text proposed above (other than the
** special exception portion of it) is the BSD license and we have added
** the BSD license as a permissible license under the exception.
**
****************************************************************************/

#ifndef QGoogleCalendar_H
#define QGoogleCalendar_H
#include <qlineedit.h>
#include <qsettings>
#include <QPushButton>
 #include <QVector>
#include <QtGui/QMainWindow>
#include <QListView.h>
#include <QListWidgetItem>
#include <QListWidget>
#include "ui_QGoogleCalendar.h"

#include "QCalAuthRetriever.h"
#include "QCalEventRetriever.h"

#include "QCalParseEventDetailsXML.h"
#include "eventdetails.h"

QT_BEGIN_NAMESPACE
class QCalendarView;
QT_END_NAMESPACE
//extern QVector<entry*> eventArray;



class QGoogleCalendar : public QMainWindow
{
    Q_OBJECT

public:
	QGoogleCalendar(QWidget *parent = 0);
    ~QGoogleCalendar();
    void login();
    
public slots:
    void launchXmlParser();
    void eventlistview(QDate);
    
 
private:
    QCalEventRetriever * evntRetr;
    QStackedWidget* stackedWidget;
    QCalParseEventDetailsXML* xmlInput;
    QVector<QString> titlArr;
    QVector<eventDetail> eventArr;
    QCalendarView* CalenderWidget;    
};

/*
class QLoginWidget : public QWidget
	{
	Q_OBJECT
public:
	QLoginWidget(QStackedWidget* stackedWidget,QWidget *parent = 0);
    ~QLoginWidget();
public:
        QMenuBar* MenuBar() const;
 
public slots:
    void eventlistview(QDate);
    void login();
    void ActivateCalender();
Q_SIGNALS:
    void logincomplete();
//    void upld();
//    void passview();
private:
    QCalAuthRetriever * authRetr; 
    QCalEventRetriever * evntRetr;
    QLineEdit* name;
    QLineEdit* pass;
    QSettings setting;
    QWidget* pWidget;
    QStackedWidget* stackedWidget;
    
private:    
   // void createWidget2();

private:
        void createMenus();
           
    public slots:
        void hello();
        
       // void createWidget3();        
    
    private:
        QAction*            menuAction;
        QAction*            menuAction2;    
	};

*/


//-------------------------------------------------------------------------




/*
class QDetailsWidget : public QWidget
	{
	Q_OBJECT
public:
	QDetailsWidget(QStackedWidget* stackedWidget,eventDetail& detail,QWidget *parent = 0);
    ~QDetailsWidget();
public:
        QMenuBar* MenuBar() const;
 
public slots:
    void NxtPage();
    void PrevPage();

private:

    QWidget* pWidget;
    QVector<QString> titlArr;
    QVector<QString> contentArr;
    QVector<QString> whereArr;
    QVector<QString> whenEndArr;
    QVector<QString> whenStartArr;
private:    
   // void createWidget2();

private:
        void createMenus();
private:
        QWidget* rWidget;
        QDate date;
        QStackedWidget* stackedWidget;
	};
*/

//-------------------------------------------------------------------------


/*

class QMyWidget2 : public QWidget
    {
    Q_OBJECT

    public:
        QMyWidget2(QStackedWidget* stackedWidget,QVector<eventDetail>& dayEvents,QWidget *parent = 0);
        ~QMyWidget2();
    
    public:
        QMenuBar* MenuBar() const;
        void NxtPage(eventDetail);
    public slots:
		void PrevPage();
    private:
        void createMenus();
    
    public slots:
        void hello();
        void back();
        
    public slots:
		void index(const QModelIndex &);
    
    private:
        QAction*            menuAction;
       QListWidgetItem *lst;
        QVBoxLayout *layout;
        QListWidget *listWidget;
        QVector<QString> titlArr;
        QVector<QString> contentArr;
        QVector<QString> whereArr;
        QVector<QString> whenEndArr;
        QVector<QString> whenStartArr;
        //QVector<QListWidgetItem*> itemArr;
        QVector<eventDetail> eventDetails;
        QStackedWidget* stackedWidget;
      
//        QAction*            menuAction2;
        uploader* upldr;
		SAXHandler* handler;	
		QTreeView*  m_tree;
		QXmlSimpleReader m_reader;
		
    }; 
*/

//-------------------------------------------------------------------------



#endif // QGoogleCalendar_H
